package com.kmproject.haifu.mvp.ui.bis.share

import cn.sharesdk.framework.Platform
import cn.sharesdk.framework.Platform.ShareParams
import cn.sharesdk.framework.PlatformActionListener
import cn.sharesdk.framework.ShareSDK
import cn.sharesdk.onekeyshare.OnekeyShare
import cn.sharesdk.tencent.qq.QQ
import com.mob.MobSDK
import timber.log.Timber
import java.util.*


object ShareUtil {
    fun shareQQ() {
        val sp = ShareParams()
        sp.title = "测试分享的标题"
        sp.titleUrl = "http://sharesdk.cn" // 标题的超链接
        sp.text = "测试分享的文本"
        sp.imageUrl = "http://www.someserver.com/测试图片网络地址.jpg"
        sp.site = "发布分享的网站名称"
        sp.siteUrl = "发布分享网站的地址"

        val qzone = ShareSDK.getPlatform(QQ.NAME)
        // 设置分享事件回调（注：回调放在不能保证在主线程调用，不可以在里面直接处理UI操作）
        qzone.platformActionListener = object : PlatformActionListener {
            override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
                Timber.i("onComplete")
            }

            override fun onCancel(p0: Platform?, p1: Int) {
                Timber.i("onCancel")
            }

            override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
                Timber.i("onError")
            }
        }
        // 执行图文分享
        qzone.share(sp)
    }

    /**
     * @param platform 指定分享的平台，如果为空，还是会调用九宫格的平台列表界面
     * @param title title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间使用
     * @param titleUrl titleUrl是标题的网络链接，仅在Linked-in,QQ和QQ空间使用
     * @param content text是分享文本，所有平台都需要这个字段
     * @param imgUrl 分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
     * @param url url仅在微信（包括好友和朋友圈）中使用
     */
    fun showShare(platform: String?, title: String?, titleUrl: String?, content: String, imgUrl: String, url: String) {
        val oks = OnekeyShare()
        if (platform != null) {
            oks.setPlatform(platform)
        }
        oks.setTitle(title)
        oks.setTitleUrl(titleUrl)
        // text是分享文本，所有平台都需要这个字段
        oks.text = content
        //分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
        oks.setImageUrl(imgUrl)
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl(url)
        oks.callback = object : PlatformActionListener {
            override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
                Timber.i("onComplete")
            }

            override fun onCancel(p0: Platform?, p1: Int) {
                Timber.i("onCancel")
            }

            override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
                Timber.i("onError")
            }
        }
        //启动分享
        oks.show(MobSDK.getContext())
    }
}